﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SisEagle.Common.Code;


namespace SisEagle.View.Web.Base
{
    public static class HttpRequestExtension
    {
        private readonly static string ChaveID = "cod";

        /// <summary>
        /// Verifica se na query string existe um parametro com a chave COD
        /// </summary>
        /// <param name="request">Objeto HttpRequest do ASP NET</param>
        /// <returns>Verdadeiro quando existe</returns>
        public static bool ExisteId(this HttpRequest request)
        {
            return request.ExisteIdToInt(ChaveID);
        }

        /// <summary>
        /// Verifica se na query string existe um parametro com a chave expecificada e este parametro e uma Guid
        /// </summary>
        /// <param name="request">Objeto HttpRequest do ASP NET</param>
        /// <param name="key">Chave da query string a verificar</param>
        /// <returns>Verdadeiro quando existe</returns>
        public static bool ExisteIdToInt(this HttpRequest request, string key)
        {
            if (string.IsNullOrEmpty(request.QueryString[key]))
                return false;

            int valor = 0;

            if (!int.TryParse(request.QueryString[key], out valor))
                return false;

            return true;
        }

        /// <summary>
        /// Verifica se na query string existe um parametro com a chave COD
        /// </summary>
        /// <param name="request">Objeto HttpRequest do ASP NET</param>
        /// <returns>Verdadeiro quando existe</returns>
        public static bool ExisteIdToInt(this HttpRequest request)
        {
            return request.ExisteIdToInt(ChaveID);
        }


        /// <summary>
        /// Recupera o ID passado por query string, quando não existir ou não for uma Guid valida retorna Guid.Empty
        /// </summary>
        /// <param name="request">Objeto HttpRequest do ASP NET</param>
        /// <returns>Guid passada por QueryString</returns>
        public static int GetIdToInt(this HttpRequest request)
        {
            if (!request.ExisteId())
                return 0;

            //return request.QueryString[ChaveID].ToInt32();

            return int.Parse(request.QueryString[ChaveID].ToString());


        }



    }
}